/**
 * Copyright &copy; 2012-2014 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.shelvesreport.entity;

import java.util.Date;

import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.Length;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.thinkgem.jeesite.common.persistence.DataEntity;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;
import com.thinkgem.jeesite.modules.sys.entity.Office;

/**
 * 上架报告Entity
 * @author zxl
 * @version 2017-08-04
 */
public class ShelvesReport extends DataEntity<ShelvesReport> {
	
	private static final long serialVersionUID = 1L;
	private String winitOrderNo;		// 订单号
	private Office office;			// 仓库名称
	private String officeName;
	private String packageQty;		// 预计包裹数
	private String actuPackageQty;		// 实际包裹数
	private String productQty;		// 预计商品数
	private String actuProductQty;		// 实际商品数
	private String itemQty;		// 预计单品数
	private String actuItemQty;		// 实际单品数
	private Date orderTargetShelvesTime;		// 订单目标上架时间
	private Date warhousePlanShelvesTime;		// 仓库计划上架时间
	private Date acuShelvesTime;		// 实际上架完成时间
	private String timeOut;		// 超时上架
	private String winitProductName;
	private Date actuEntryWarhousenameTime;		// 确认到仓时间

	private Date startActuEntryWarhousenameTime;//起始进仓时间
	private Date endActuEntryWarhousenameTime;//结束进仓

	private Date startWarhousePlanShelvesTime;//起始计划上架时间
	private Date endWarhousePlanShelvesTime;//结束计划上架时间

	private Date startAcuShelvesTime;//起始上架时间
	private Date endAcuShelvesTime;//结束上架时间
	private String isFilerShelved;//是否过滤已上架


	public ShelvesReport() {
		super();
	}

	@JsonFormat(pattern = "yyyy-MM-dd")
	public Date getStartActuEntryWarhousenameTime() {
		return startActuEntryWarhousenameTime;
	}

	public void setStartActuEntryWarhousenameTime(Date startActuEntryWarhousenameTime) {
		this.startActuEntryWarhousenameTime = startActuEntryWarhousenameTime;
	}
	@JsonFormat(pattern = "yyyy-MM-dd")
	public Date getEndActuEntryWarhousenameTime() {
		return endActuEntryWarhousenameTime;
	}

	public void setEndActuEntryWarhousenameTime(Date endActuEntryWarhousenameTime) {
		this.endActuEntryWarhousenameTime = endActuEntryWarhousenameTime;
	}
	@JsonFormat(pattern = "yyyy-MM-dd")
	public Date getStartAcuShelvesTime() {
		return startAcuShelvesTime;
	}

	public void setStartAcuShelvesTime(Date startAcuShelvesTime) {
		this.startAcuShelvesTime = startAcuShelvesTime;
	}
	@JsonFormat(pattern = "yyyy-MM-dd")
	public Date getEndAcuShelvesTime() {
		return endAcuShelvesTime;
	}

	public void setEndAcuShelvesTime(Date endAcuShelvesTime) {
		this.endAcuShelvesTime = endAcuShelvesTime;
	}
	@JsonFormat(pattern = "yyyy-MM-dd")
	public Date getStartWarhousePlanShelvesTime() {
		return startWarhousePlanShelvesTime;
	}
	public void setStartWarhousePlanShelvesTime(Date startWarhousePlanShelvesTime) {
		this.startWarhousePlanShelvesTime = startWarhousePlanShelvesTime;
	}
	@JsonFormat(pattern = "yyyy-MM-dd")
	public Date getEndWarhousePlanShelvesTime() {
		return endWarhousePlanShelvesTime;
	}
	public void setEndWarhousePlanShelvesTime(Date endWarhousePlanShelvesTime) {
		this.endWarhousePlanShelvesTime = endWarhousePlanShelvesTime;
	}
	@JsonFormat(pattern = "yyyy-MM-dd")
	public Date getActuEntryWarhousenameTime() {
		return actuEntryWarhousenameTime;
	}
	public void setActuEntryWarhousenameTime(Date actuEntryWarhousenameTime) {
		this.actuEntryWarhousenameTime = actuEntryWarhousenameTime;
	}
	public ShelvesReport(String id){
		super(id);
	}
	@Length(min=0, max=255, message="WINIT产品长度必须介于 0 和 255 之间")
	@ExcelField(title="winit产品", align=2, sort=22)
	public String getWinitProductName() {
		return winitProductName;
	}

	public void setWinitProductName(String winitProductName) {
		this.winitProductName = winitProductName;
	}

	@Length(min=0, max=255, message="订单号长度必须介于 0 和 255 之间")
	@ExcelField(title="winit订单号", align=2, sort=10)
	public String getWinitOrderNo() {
		return winitOrderNo;
	}

	public void setWinitOrderNo(String winitOrderNo) {
		this.winitOrderNo = winitOrderNo;
	}

	public Office getOffice() {
		return office;
	}

	public void setOffice(Office office) {
		this.office = office;
	}
	@ExcelField(title = "仓库名称", sort=21)
	public String getOfficeName() {
		return officeName;
	}
	public void setOfficeName(String officeName) {
		this.officeName = officeName;
	}

	@ExcelField(title = "预计包裹数", sort=32)
	@Length(min=1, max=11, message="预计包裹数取值长度必须介于 1 和 11 之间")
	public String getPackageQty() {
		return packageQty;
	}

	public void setPackageQty(String packageQty) {
		this.packageQty = packageQty;
	}
	@ExcelField(title = "实际包裹数", sort=53)
	@Length(min=1, max=11, message="实际包裹数取值长度必须介于 1 和 11 之间")
	@NotNull(message = "实际包裹数不能为空")
	public String getActuPackageQty() {
		return actuPackageQty;
	}

	public void setActuPackageQty(String actuPackageQty) {
		this.actuPackageQty = actuPackageQty;
	}
	@ExcelField(title = "预计商品数", sort=64)
	@Length(min=1, max=11, message="预计商品数长度必须介于 1 到 11位数之间")
	public String getProductQty() {
		return productQty;
	}

	public void setProductQty(String productQty) {
		this.productQty = productQty;
	}
	@ExcelField(title = "实际商品数", sort=75)
	@NotNull(message = "实际商品数不能为空")
	@Length(min=1, max=11, message="实际商品数取值长度必须介于 1 和 11 位数之间")
	public String getActuProductQty() {
		return actuProductQty;
	}

	public void setActuProductQty(String actuProductQty) {
		this.actuProductQty = actuProductQty;
	}
	@ExcelField(title = "预计单品数", sort=86)
	@NotNull(message = "预计单品数不能为空")
	@Length(min=1, max=11, message="预计单品数长度必须介于 1 和 11 之间")
	public String getItemQty() {
		return itemQty;
	}

	public void setItemQty(String itemQty) {
		this.itemQty = itemQty;
	}
	@ExcelField(title = "实际单品数", sort=97)
	@NotNull(message = "实际单品数不能为空")
	@Length(min=1, max=11, message="实际单品数取值长度必须介于 1 和 11数之间")
	public String getActuItemQty() {
		return actuItemQty;
	}

	public void setActuItemQty(String actuItemQty) {
		this.actuItemQty = actuItemQty;
	}
	@ExcelField(title = "订单目标上架时间", sort=27)
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getOrderTargetShelvesTime() {
		return orderTargetShelvesTime;
	}

	public void setOrderTargetShelvesTime(Date orderTargetShelvesTime) {
		this.orderTargetShelvesTime = orderTargetShelvesTime;
	}

	public String getIsFilerShelved() {
		return isFilerShelved;
	}

	public void setIsFilerShelved(String isFilerShelved) {
		this.isFilerShelved = isFilerShelved;
	}

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title = "仓库计划上架时间", sort=25)
	public Date getWarhousePlanShelvesTime() {
		return warhousePlanShelvesTime;
	}

	public void setWarhousePlanShelvesTime(Date warhousePlanShelvesTime) {
		this.warhousePlanShelvesTime = warhousePlanShelvesTime;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title = "实际上架时间", sort=110)
	public Date getAcuShelvesTime() {
		return acuShelvesTime;
	}

	public void setAcuShelvesTime(Date acuShelvesTime) {
		this.acuShelvesTime = acuShelvesTime;
	}
	@ExcelField(title = "超时时间", sort=121)
	@NotNull(message = "超时时间不能为空")
	@Length(min=1, max=11, message="超时时间取值必须介于 1 和 11位数之间")
	public String getTimeOut() {
		return timeOut;
	}

	public void setTimeOut(String timeOut) {
		this.timeOut = timeOut;
	}
	
}